Software
This page is a list of software I use
Operating systems
Desktop and laptop
On desktops and laptops, I run Arch Linux or Linux Mint. I tend to choose Arch for machines that only I will use and Mint for machines that will also be used by other people.
I've used these distros at various times:
- CentOS
- Debian
- Endevour OS
- Endless OS
- Fedora
- Gentoo
- Linux From Scratch
- Manjaro
- MX Linux
- openSUSE
- Pop! OS
- Red Hat
- Slackware
- Ubuntu
Some of the distros I haven't used, but am interested in trying:
Server
"Any distro can be a server" may be true, but distros with long-term support and a defined release schedule are better suited to most use cases for servers.
On servers, I run Debian, Alpine, or Rocky. Debian is my default choice. Where install size or simplicity is important, I use Alpine. Where compatibility with RHEL is required, I use Rocky.
At various times, I've run the following distros on servers:
Live media
To me, a live OS is one that is primarily intended to be used via removable media. Most distributions have a bootable image that is used for installation, but don't meet my definition for a live OS.
I maintain Snal Linux, so that's my "normal" live linux distribution. As you might expect, I've added the applications I like to Snal, so I rarely need to use a different live image. Special use cases or hardware platforms other than x86_64 call for a different distro:
Live operating systems I've used over the years:
- Damn Small Linux - as of 2024, DSL is active again!
- Gnoppix
- GRML
- Kali
Knoppix- dormantMovix- discontinued- Puppy
- Slax
- SliTaz
- SystemRescue
- Tiny Core
tomsrtbt- discontinued
Live operating systems haven't used, but am interested in trying:
Applications
On Arch machines, I run X Windows without a graphical display manager. Instead, I call startx from my ~/.bashrc
. Inside of X windows, I use i3 to manage windows.
On Linux Mint machines, I install the Xfce edition and use the default graphical display manager, desktop environment, and window manager.
Because I use Linux as my OS, there are lots of options for applications. Here are a number of general preferences that inform my choices of which applications I use:
- Philosophically and practically, I prefer free and open source software. Philosophic reasoning: FOSS, if done right, is more equitable and more sustainable. Practical reasoning: FOSS applications can't just disappear: someone can always fork the project.
- I prefer applications that follow the Unix philosophy: do one thing well.
- I spend most of my computer time at a terminal and I often work remotely via ssh. I prefer terminal applications over graphical applications.
- I use several different Linux distributions and, though I use different graphical environments, I like to have the same applications available. I prefer applications that are easily available across a range of distributions.
- I use several different computers. I prefer applications that store configs in text files so that I can easily store, version control, and sync configurations.
- I have some knowledge of computer programming. I prefer applications written in languages I understand. I am familiar with rust and, to a lesser extent, c.
Web Browser
- Firefox: this is my main browser.
- Luakit: I've only been using Luakit for a little while, but I've been impressed with the speed and happy with the vi-inspired key bindings.
- Dillo: this is a lightweight and independently developed browser.
Midori: I stopped using this after it switched to Electron.- elinks: this is my main terminal browser.
- lynx: I use this if elinks isn't available.
Graphical Terminal Interface
- lxterminal: I use the terminal from the LXDE project no matter what graphical environment I'm using. It has relatively few dependencies and low RAM usage but still has tabs. It is available in almost all distributions. It has reasonable default key bindings that don't interfere with others that I use. It saves config settings to human-readable text files.
- Xterm: I use this if lxterminal isn't available.
Terminal Multiplexer
- GNU Screen: I use this almost everywhere because a terminal that runs inside a terminal is way more useful than it sounds. Screen is expecially useful for remote connections:
ssh
to a remote host and work inside of a screen session. If your network connection drops, or you switch to a different network, or your local computer shuts down, the remote screen detaches and keeps the programs running. Once youssh
back into the remote host, you can reattach to continue the session. You can have multiple terminals within one session and even automatically start multiple terminals with custom commands on startup by adding to your~/.screenrc
. Screen can also be used to share a terminal with another user. For more information and examples, check out these pages. There are alternatives to GNU Screen, most of which are considered more advanced. I use screen because it's available in more distributions and I've customized it to my liking.
Shell
- bash: I use
bash
on most machines. I maintain some scripts that are mostly in bash, so I've never branched out into the alternatives such ascsh
,tcsh
, andzsh
. - busybox sh: I use the busybox
sh
in some situations.
Text Editor
- neovim: I use
neovim
where it is available. I am comfortable withvi
style editors andneovim
has features that work for me. - vim: I use
vim
whereneovim
is not available. This was my go-to editor for many years. - busybox vi: I use the busybox
vi
in some situations. - micro: I use
micro
when I want a non modal terminal editor. - xed: I use
xed
on occasion. - mousepad: I also use
mousepad
on occasion.
IRC Client
- weechat: I use
weechat
for Internet Relay Chat. I really like the combination of a terminal IRC client and GNU Screen. I mostly connect to liberachat, but I also use other networks.
In progress 2024-07-28